package com.bjpowernode.api.serivce;

import com.bjpowernode.api.dto.UserAccountInfo;
import com.bjpowernode.api.dto.UserRechargeInfo;
import com.bjpowernode.api.model.User;

import java.util.List;

/**
 * @author 麦翔盛
 * @ClassName: UserService
 * @Package: com.bjpowernode.dataservice.service
 * @description: 用户 逻辑层
 * @date 2022/5/21 16:52
 */
public interface UserService {

    /**
     * 用户注册 并返回其id
     * @param phone 电话号码
     * @param password 密码
     * @return userid
     */
    public Integer userRegister(String phone,String password);


    /**
     * 用户登录
     * @param phone 电话号码
     * @param password
     * @return
     */
    public User userLogin(String phone, String password);


    /**
     * 用户是否存在
     * @param phone 用户电话号码
     * @return 是否存在
     */
    public boolean  userExist(String phone);

    /**
     * 是否已经通过实名认证
     * @param uid 用户id
     * @return 是否通过实名认证
     */
    boolean isVerifiedRealName(Integer uid);

    /**
     * 更新用户实名数据
     * @param uid 用户id
     * @param name 用户真实姓名
     * @param idNo 用户身份证号码
     */
    void updateUserRealInfo(Integer uid, String name, String idNo);

    /**
     * 根据id查询用户
     * @param uid
     * @return
     */
    User queryUserById(Integer uid);

    /**
     * 获取用户以及账户的信息
     * @param uid 用户id
     * @return userAccountInfo
     */
    UserAccountInfo queryUserAccountInfoById(Integer uid);


    /**
     * 根据用户id查询用户充值记录
     * @param uid 用户id
     * @param pageNo 页码
     * @param pageSize 限制条数
     * @return UserRechargeInfo
     */
    List<UserRechargeInfo> queryUserRechargeInfoByUid(Integer uid, Integer pageNo, Integer pageSize);

}
